home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2005 June / PCpro_2005_06.ISO / files / opensource / amc / amc_install.exe / {app} / Scripts / Vervideo (Br).ifs < prev    next >
Encoding:
Text File  |  2005-03-13  |  6.8 KB  |  206 lines

  1. (***************************************************
  2.  
  3. Ant Movie Catalog importation script
  4. www.antp.be/software/moviecatalog/
  5.  
  6. [Infos]
  7. Authors=O Guardiπo (<link>bruno_mga@hotmail.com</link>)
  8. Title=Vervideo
  9. Description=Movie importation script for vervideo.com.br
  10. Site=www.vervideo.com.br
  11. Language=PT
  12. Version=1.0 - 26 Fevereiro 2005
  13. Requires=3.5.0
  14. Comments=Script feito por O Guardiπo (www.guardiao.pt.vu) para o site "www.vervideo.com.br" |
  15. License=This program is free software; you can redistribute it and/or modify it under the  terms of the GNU General Public License as published by the Free Software Foundation;  either version 2 of the License, or (at your option) any later version. |
  16. GetInfo=1
  17.  
  18. [Options]
  19.  
  20. ***************************************************)
  21.  
  22. program Vervideo;
  23. uses StringUtils1;
  24. var
  25.   MovieName, MovieURL: string;
  26.   LineNr, BeginPos, EndPos: Integer;
  27.  
  28. procedure AnalyzeFilmPage(Address: String);
  29. var
  30.   Page : TStringList;
  31.   Value,value2 : string;
  32. begin
  33.   Page := TStringList.Create;
  34.   Page.Text := UTF8Decode(GetPage(Address));
  35.   SetField(fieldURL, Address);
  36.  
  37.     LineNr := FindLine('<td align="center" valign="top"><strong>', Page, 0);
  38.     value := Page.GetString(LineNr);
  39.     value:=Copy(value,43,length(value));
  40.     EndPos := pos('</strong>', value);
  41.     value:=copy(value,1,EndPos-1);
  42.     SetField(fieldTranslatedTitle, value);
  43.     
  44.     value := Page.GetString(LineNr+1);
  45.     BeginPos:=Pos('[ ',value)+2;
  46.     EndPos:=Pos(' ]</td>',value);
  47.     value:=Copy(value,BeginPos,EndPos-BeginPos);
  48.     SetField(fieldOriginalTitle, value);
  49.     
  50.     LineNr := FindLine('<strong>Ano:</strong><br>', Page, 0);
  51.     value := Page.GetString(LineNr);
  52.     value:=Copy(value,26,length(value));
  53.     HTMLRemoveTags(value);
  54.     HTMLDecode(value);
  55.     value:=StringReplace(value,' ','');
  56.     SetField(fieldYear, value);
  57.  
  58.     LineNr := FindLine('<strong>Origem:</strong><br>', Page, 0);
  59.     value := Page.GetString(LineNr);
  60.     value:=Copy(value,32,length(value));
  61.     HTMLRemoveTags(value);
  62.     HTMLDecode(value);
  63.     value:=StringReplace(value,' ','');
  64.     SetField(fieldCountry, value);
  65.  
  66.     LineNr := FindLine('<strong>Genero</strong>:<br>', Page, 0);
  67.     value := Page.GetString(LineNr);
  68.     value:=Copy(value,32,length(value));
  69.     HTMLRemoveTags(value);
  70.     HTMLDecode(value);
  71.     value:=StringReplace(value,' ','');
  72.     SetField(fieldCategory, value);
  73.  
  74.     LineNr := FindLine('<td><strong>Direção:</strong>', Page, 0)+2;
  75.     value := Page.GetString(LineNr);
  76.     BeginPos:= pos('<a href',value);
  77.     EndPos := pos('</a>',value);
  78.     value:=Copy(value,BeginPos,EndPos-BeginPos);
  79.     HTMLRemoveTags(value);
  80.     HTMLDecode(value);
  81.     SetField(fieldDirector, value);
  82.  
  83.     value := Page.text;
  84.     BeginPos := Pos('<td><strong>Atores:</strong>', value);
  85.     value:=Copy(value,BeginPos,Length(value));
  86.     EndPos := pos('</td>',value);
  87.     value:=Copy(value,1,EndPos-1);
  88.     
  89.     repeat
  90.       BeginPos:=pos('">',value)+2;
  91.       EndPos:=pos('</a>',value);
  92.       value2:=value2+Copy(value,BeginPos,EndPos-BeginPos)+', ';
  93.       value:=Copy(value,EndPos+4,length(value));
  94.     until (pos('">',value)=0);
  95.       value2:=Copy(value2,1,length(value2)-3);
  96.       SetField(fieldActors, value2);
  97.       
  98.     LineNr := FindLine('<td valign="top"><div align="justify">', Page, 0);
  99.     value := Page.GetString(LineNr);
  100.     BeginPos:= pos('<td valign="top"><div align="justify">',value)+38;
  101.     EndPos := pos('</div></td>',value);
  102.     value:=Copy(value,BeginPos,EndPos-BeginPos);
  103.     HTMLRemoveTags(value);
  104.     HTMLDecode(value);
  105.     SetField(fieldDescription, value);
  106.     
  107.     LineNr:=FindLine('<strong>Duração:</strong>',Page,0);
  108.     value := Page.GetString(LineNr);
  109.     BeginPos:=Pos('<br>',value);
  110.     EndPos:=Pos(' min',value);
  111.     value:=Copy(value,BeginPos,EndPos-BeginPos);
  112.     value:=StringReplace(value,' ','');
  113.     HTMLRemoveTags(value);
  114.     HTMLDecode(value);
  115.     SetField(fieldLength, value);
  116.     
  117.     LineNr:=FindLine('<strong>Distribuidora:</strong>',Page,0);
  118.     value := Page.GetString(LineNr);
  119.     BeginPos:=Pos('<br>',value);
  120.     value:=Copy(value,BeginPos,Length(value));
  121.     value:=StringReplace(value,' ','');
  122.     HTMLRemoveTags(value);
  123.     HTMLDecode(value);
  124.     SetField(fieldProducer, value);
  125.  
  126.     LineNr := FindLine('<td rowspan="7" valign="top" align="center">', Page, 0)+2;
  127.     value := Page.GetString(LineNr);
  128.     BeginPos:=Pos('<img src="',value)+10;
  129.     EndPos:=Pos('" border="1"',value);
  130.     value:=Copy(value,BeginPos,EndPos-BeginPos);
  131.     GetPicture(Value);
  132. end;
  133.  
  134. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  135. var
  136.   i: Integer;
  137. begin
  138.   result := -1;
  139.   if StartAt < 0 then
  140.     StartAt := 0;
  141.   for i := StartAt to List.Count-1 do
  142.     if Pos(Pattern, List.GetString(i)) <> 0 then
  143.     begin
  144.       result := i;
  145.       Break;
  146.     end;
  147. end;
  148.  
  149. procedure AnalyzePage(Address: string);
  150. var
  151.   Page: TStringList;
  152.   x:integer;
  153.   MovieAddress, findMovieName,linedown : string;
  154.   guardar, nome_filme:string;
  155. begin
  156.   PickTreeClear;
  157.   Page := TStringList.Create;
  158.   Page.Text :=UTF8Decode(GetPage(Address));
  159.  
  160.   if Pos('NΓo foram encontrados filmes com essas caracterφsticas', Page.Text)<>0  then
  161.   begin
  162.       ShowMessage('O filme nπo foi encontrado.');
  163.       Exit;
  164.   end
  165.   else
  166.   begin
  167.   repeat
  168.   repeat
  169.       x := FindLine('bt-proxima.gif', Page, 0);
  170.       if x<>-1 then
  171.         guardar := Page.GetString(x);
  172.       BeginPos:=Pos('filme.cfm?cod=',Page.Text);
  173.       Page.Text:=Copy(Page.Text,BeginPos,Length(Page.Text));
  174.       EndPos:=Pos('"',Page.Text);
  175.       MovieURL:='http://www.vervideo.com.br/'+Copy(Page.Text,1, EndPos-1);
  176.       BeginPos:=Pos('<br>',Page.Text)+4;
  177.       EndPos:=Pos('</a>',Page.Text);
  178.       nome_filme:= Copy(Page.Text,BeginPos, EndPos-BeginPos);
  179.       PickTreeAdd(nome_filme, MovieURL);
  180.       Page.text:=Copy(Page.text,EndPos,Length(Page.Text));
  181.     until (Pos('filme.cfm?cod=', Page.Text)=0);
  182.   if Pos('bt-proxima.gif',guardar)<>0 then
  183.   begin
  184.      BeginPos:=Pos('pagina(',guardar)+7;
  185.      EndPos:=Pos(');"',guardar);
  186.      guardar:=Copy(guardar,BeginPos, EndPos-BeginPos);
  187.      Page.Text :=UTF8Decode(GetPage('http://www.vervideo.com.br/busca.cfm?palavra='+MovieName+'&ator=&diretor=&sinopse=&genero=0&origem=0&distribuidora=0&ano=&trailer=&wallpaper=&pagina='+guardar+'&buscar=Buscar'));
  188.   end
  189.   else
  190.   break
  191.  until (guardar='');
  192.     if PickTreeExec(Address) then
  193.       AnalyzeFilmPage(Address);
  194.     Page.Free;
  195.   end;
  196. end;
  197. begin
  198.   MovieName := GetField(fieldOriginalTitle);
  199.   if Input('Importar do Vervideo', 'Escreva o nome do filme:', MovieName) then
  200.   begin
  201.     MovieName:=StringReplace(MovieName,' ','+');
  202.     AnalyzePage('http://www.vervideo.com.br/busca.cfm?buscar=Buscar&palavra='+MovieName);
  203.   end;
  204. end.
  205.  
  206.